System and method for a virtual reality system having a frame buffer that stores a plurality of view points that can be selected and viewed by the user

ABSTRACT

A computer video display system and method is disclosed. The computer video display system includes a frame buffer for storing a multiplicity of view points of a model to be displayed, a measurement device for measuring an aspect of the user&#39;s movement, a view point device for ascertaining a point of view of the model to be displayed in response to the measurement device, a computational device for modifying the view point according to a predefined algorithm, an access device for accessing the appropriate display information from the frame buffer, and a head mounted display for displaying the selected view point of the model. During operation, the measuring device, the view point device, and the computational device continuously update the view points of the model in response to movements of the user. In response thereto, the access device traverses the frame buffer and provides the updated display information to the head mounted display. The image, as seen through the head mounted display, appears to be continuous, fluid and natural.

BACKGROUND OF THE INVENTION

1. Field of he Invention

The present invention relates to computer graphics, and, moreparticularly, to a system and method to substantially increase thecapability of a computer to present information.

2. Background of the Invention

Computers have vastly increased their ability to process information.Many computers now include one or more powerful microprocessors.Multi-tasking operating systems have given the computer the ability toexecute more than one application at a time. Application programs havetaken advantage of this increased computing power, and as a result, havebecome more graphic intensive.

The size of standard computer terminals (e.g., a 19 inch monitor) hasbecome a limiting factor in presenting processed information to theuser. A standard desktop computer now has the capability to inundate thedisplay terminal of the computer with information. The computer industryhas attempted several approaches to overcome this problem.

The most common approach has been window based software. Windowingsystems attempt to maximize the use of the screen space of a displayterminal by providing overlapping windows and icons. The windowoperating environment, although useful, is often frustrating to operate.The user is required to spend an inordinate amount of time moving,resizing, and opening and closing various windows and icons on thedisplay space. The opening and closing of a window is often slow.Over-lapping windows can be aggravating to the eye. It is also difficultto manipulate information within windows. The physical size of thedisplay terminal limits the size of each window, the number of windowsthat can be displayed at a given time, and in the case of graphicintensive applications, is often too small to display an image of anobject in its entirety.

Another approach to increase the display surface area of a computer isto simply use a larger monitor. Several companies are marketingtwenty-eight (28) inch diagonal monitors. These extra-large monitors doincrease the display capabilities of the computer to some degree, butthe problems outlined above are still present. These monitors are alsoprohibitively expensive to build and difficult to ship to customers. Onesuch monitor currently on the market weighs over two hundred pounds andis more than thirty inches deep. This monitor is clearly impractical forstandard desktop computers.

Virtual reality systems represent yet another approach to increasing thedisplay area of a computer. It is believed a virtual reality system wasfirst described by Ivan Sutherland, a co-inventor of the presentapplication, in a seminal article entitled “A head-mounted threedimensional display”, AFIPS Conference Proceedings, Volume 33, 1968.This article describes an imaging pipeline, including: a database forstoring all the data, relationships and objects that are relevant to amodel to be displayed; a position sensor for selecting a view point ofthe model to be displayed; a transformer for traversing the database,extracting the appropriate data to generate the model from the selectedview point, and transforming it on the fly to a display format; a framebuffer for storing the transformed data; and the head mounted displayfor displaying the data stored in the frame buffer. The virtual realitysystem thus provides the user with a head-motion parallax: when the usermoves his head, the view seen through the head mounted display unitchanges as it would in real life.

It is believed that all current virtual reality systems, which use thebasic pipeline described above, are limited in their performance. Onlythe current image, as seen in the head mounted display at a given time,is stored in the frame buffer of the system. When the user moves hishead, a new scene must be calculated on the fly by the computer andstored in the frame buffer of the system. This causes a perceptible lagtime between the selection of a new view point and the time the newimage appears on the head mounted display. This lag is unnatural anduncomfortable to the user. Prolonged use of these virtual realitysystems has been known to cause nausea.

SUMMARY OF THE INVENTION

The present invention is a system and method for a computer videodisplay. The present invention provides an inexpensive, easy-to-uselarge display environment.

The computer video display system includes a frame buffer for storing amultiplicity of view points of a model to be displayed, a measurementdevice for ascertaining a point of view of the model to be displayed inresponse to the measurement of an aspect of the user's movement, acomputational device for modifying the view point according to apredefined algorithm, an access device for accessing the appropriatedisplay information from the frame buffer, and a head mounted displayfor displaying the selected view point of the model. During operation,the measuring device, the view point device, and the computationaldevice continuously update the view points of the model in response tomovements of the user. In response thereto, the access device traversesthe frame buffer and provides the updated display information to thehead mounted display.

The display information is presented to the user in a view window in thehead mounted display. To generate the view window, the computationaldevice and the access device generate a plurality of scan lines from theframe buffer. The scan lines contain pixel information corresponding tothe current point of view of the model to be displayed in the viewwindow. For each view window in the preferred embodiment, nine hundred(900) scan lines are generated in the vertical direction, and each scanline is eleven hundred and twenty (1120) bits long in the horizontaldirection.

In a preferred embodiment, the computer video display system provides avirtual view space which is in the shape of a 360° cylinder and a heightof 135° surrounding the computer user. The virtual view space is mappedinto the frame buffer in the computer system. As the user scans thevirtual view space, the frame buffer is immediately traversed, and theview window as seen through the head mounted display is updated. As aresult, the image, as seen through the head mounted display, appears tobe continuous, fluid and natural.

The computer video display of the present invention provides a number ofunique features and advantages. The user is immersed in a virtual viewsystem, which provides the user with an almost inexhaustible imagespace. The user navigates the virtual view space in a natural manner bysimply adjusting the measurement device. The frame buffer contains allthe view points of the model to be displayed. The data, relationshipsand objects that are relevant to the points of view are stored in theframe buffer in the transformed state. This eliminates the need tocalculate display information on the fly, store it in a frame buffer,and then display it, as is required in prior art virtual realitysystems. Display information is retrieved from the frame buffer anddisplayed, virtually eliminating any perceptible lag time.

DESCRIPTION OF THE DRAWINGS

The objects, features and advantages of the system and method of thepresent invention will be apparent from the following description inwhich:

FIG. 1 illustrates a computer operator using the video display system ofthe present invention.

FIG. 2 illustrates the relationship between a frame buffer, a view port,a view window and a virtual view space of the video display system ofthe present invention.

FIG. 3 illustrates a block diagram of the video display system of thepresent invention.

FIG. 4 illustrates the video display system generating a view windowaccording to the present invention.

FIG. 5 illustrates a video display system pipeline according to thepresent invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIG. 1, a computer operator using the video display systemof the present invention is shown. The video display system 10 includesa swivelling chair 12, a computer 14 mounted at the base of the chair12, a platform 16 for supporting computer peripheral devices such as akeyboard 18 and a mouse 20, a head mounted display 22 and a positionsensor 24 (housed inside computer 14), including a transmitter 26mechanically coupled to the head mounted display 22 and a receiver 28mechanically connected to a stationary reference point 30. The referencepoint can be located above the user's head as illustrated in FIG. 1, atthe base of the chair 12, or any other stationary location in thevicinity of the video display system 10.

Referring to FIG. 2, the relationship between a frame buffer, a viewport and a view window in a virtual view space in the video system 10 isillustrated. The virtual view space 40 is the total image area in thevideo display system 10. The virtual view space 40 is 360° and has aheight of 135°. The virtual view space 40 is shaped like a “cylinder”which surrounds the user. In the preferred embodiment, the total size ofthe virtual view space 40 is equivalent to a wall size display havingthe dimensions of approximately eight (8) feet by three (3) feet.

The virtual view space 40 includes ninety-six (96) million discretepoints, each identified by a particular yaw and pitch location. In thehorizontal direction, there are sixteen thousand (16K) discrete yawlocations. In the vertical direction, there are six thousand (6K)discrete locations.

The frame buffer 42, contained in the memory of computer 14, includestwelve (12) megabytes (MBs) of dynamic random access memory (DRAM) andhas a storage capacity of ninety-six million memory locations. Eachmemory location stores pixel information. The memory locations in theframe buffer 42 are organized into words. Each word is thirty-two (32)bits long.

The virtual view space 40 is “mapped” into the frame buffer 42. For each(yaw, pitch) location in the virtual view space 40, an addressablememory location is provided in the frame buffer 42. The memory locationsstore the pixel information for the corresponding (yaw, pitch) locationin the virtual view space 40 respectively.

The left-most edge of the frame buffer 42 corresponds to the 0° locationin the virtual view space 40. The right-most edge of the frame buffer 42corresponds to the 360° location in the virtual view space 40. Thebottom edge of the frame buffer 42 corresponds to the 0° location of thevirtual view space 40 and the top edge of the frame buffer correspondsto the 135° location of the virtual view space 40 in the verticaldirection.

During operation, the user may navigate the virtual view space 40 byrotating his head from side to side, tilting his head up or down, orswivelling in chair 12. The position sensor 24 permits the video displaysystem 10 to emulate a video environment that has two degrees offreedom. The position sensor 24 generates rotation (yaw) information andvertical movement (pitch) information in response to the movement of thetransmitter 26 on the head mounted display 22 with respect to thereceiver 28 at the reference point 30. It should be noted that in thepreferred embodiment, only yaw and pitch movement is measured. It iswithin the scope of the present invention to measure other motions, suchas scaling (forward/backward), roll, lateral, side-to-side, and up/down.

When the user looks at a discrete point in the virtual view space 40with the head mounted display 22, the computer 14 calculates a viewpoint 32 in the virtual view space 40 from the yaw and pitch informationfrom the position sensor 24. The computer 14 then defines a view port 34around the view point 32 in the virtual view space 40. The view point 32is located in the center of the view port 34, equidistant from thevertical and horizontal boundaries of the view port 34. The view port 34has the dimensions of (25°×20°) within the virtual view space 40.

To generate an image of the view port 34 in the virtual view space 40,computer 14 retrieves the pixel information from the frame buffer 42that corresponds to the view port 34. The pixel information is stored in(1120×900) memory locations. The pixel information is subsequentlytransferred to the head mounted display 22. The pixel informationdisplayed in the head mounted display 22 is referred to as view window36. The view window 36 includes (1120×900) pixels and has the dimensionsof (25°×20°) within the virtual view space 40.

The view window 36 may include a horizontal scroll bar 37 whichdesignates the yaw position and a vertical scroll bar 38 whichdesignates the pitch position of the view window 36. In the exampleillustrated in FIG. 2, the display window 36 is located at a position ofapproximately 270° yaw and 70° pitch in the virtual view space 40. Thescroll bars help the user keep track of the current location in thevirtual view space 40 and they help to locate regions in the virtualview space 40 not currently displayed in the view window 36.

The virtual view space also includes a wrap around feature. For example,if a view port 34B overlaps the (0°/360°) intersection of the virtualview space 40, memory locations from both the left side 34B′ and rightside 34B″ of the frame buffer 42 are accessed. The pixel informationcontained in regions 34B′ and 34B″ is used to define the view port 34B,and are subsequently displayed in the head mounted display 22. Thevirtual view space 40 thus appears “seamless” to the user.

In summary, the virtual video system 10 of the present inventionprovides an image pipeline. For each yaw and pitch sample, the computer14 determines the view point 32, and the view port 34. The pixelinformation contained in the view port 34 is retrieved and displayed onthe head mounted display 22 as a view window 36 of the virtual viewspace 40.

As the user moves his head through the virtual view space 40, the framebuffer 42 is immediately traversed. As a result, the view window 36 inthe head mounted display 22 is continuously updated. The image appearsto be fluid and natural. The problems related to lag in prior artvirtual reality systems are thus effectively eliminated.

THE VIDEO DISPLAY SYSTEM

Referring to FIG. 3, a block diagram of the video display system 10 isshown. The video display system 10 includes a main CPU 50, a system bus(SBus) 52, a graphics processor 54, a memory 56 including the framebuffer 42 and code space 57, an arbiter 58, a scan line generator 60,graphics output controller 62, first-in-first-out (FIFO) buffer 64,display timing generator 66, the position sensor 24 and the head mounteddisplay 22.

The graphics processor 54, memory 56, arbiter 58, scan line generator60, graphics output controller 62, FIFO 64 are all provided on a singlebufferdisplay card 70. The display timing generator 66 is an electroniccard marketed by Reflection Technology along with the head mounteddisplay 22. A ribbon cable (not shown) is used to couple the displaybuffer card 70 and the display timing generator card 66. The two cardsare inserted in the housing of computer 14. The position sensor 24 iswired to the buffer display card 70 through the RS-232 port (not shown)of the computer 14.

THE COMPUTER SYSTEM AND MAIN CPU

The computer 14 can be any general purpose computer platform, such as aSPARCstation 2 or a SPARCstation 10 marketed by Sun Microsystems, Inc.,of Mountain View, Calif., assignee of the present invention. Thesecomputers run a multi-tasking operating system called Sun OS and use awindow manager system called Open Windows.

The primary responsibility of the main CPU 50 with respect to the videodisplay system 10 is to fill the frame buffer 42 with information to bedisplayed in the virtual view space 40. This information is placed onthe SBus 52 by the main CPU 50, and, under the discretion of the arbiter58, is subsequently stored in the frame buffer 42. The manner in whichthe main CPU places information on the SBus 52 is well known, andtherefore is not described in detail.

The main CPU 50 uses a modified version of Open Windows. The modifiedversion of Open Windows retains the ability to move windows, resizewindows, open and close windows, pull down menus, user interface, etc.,within the virtual view space 40. Since the virtual view space 40 isseveral orders of magnitude larger than a traditional monitor screen,problems related to allocating screen space and preventing programs frominterfering with one another are virtually eliminated. The modified OpenWindows, however, retains these features in the event they are needed.

Modifications to Open Windows were made to take advantage of and toextend the user interface capabilities of the virtual view system 10environment. These modifications predominantly include changes to thewindow manager of Open Windows. For example, when the user opens a newwindow, the window manager ensures that the window is displayed in thecurrent view window 36. Similarly, the window manager is modified sothat dialog boxes appear in the current view window 36. When the userinvokes a full screen or a full height function of an image, the windowmanager has been modified so that the image is resized to match that ofthe view window 36, and not the size of the frame buffer. The windowmanager is also modified to account for the fact that the cursor isprimarily controlled by the position sensor 24. The window managerinsures that the cursor always appears in the current view window 36.The mouse 20 only secondarily controls the cursor by determining itsposition within the current view window 36. Many of these modificationsare desirable because the frame buffer 42 is much larger than the viewwindow 36, which differs from than prior art video systems where theframe buffer and the display are the same size.

In an office environment, for example, the user may be running a wordprocessing program, a calender management program, and a computerautomated drawing (CAD) drawing program on the main CPU 50. Theinformation generated by these three programs can be displayed, at theuser's discretion, anywhere in the eight by three foot (8′×3′) virtualview space 40. For example, when the user opens a window at a particulararea in the virtual view space 40, the main CPU 50 is responsible forallocating the corresponding memory locations in the frame buffer 42.The proper image is presented in the head mounted display 22 when theuser looks at a particular location in the virtual view space 40.

VIDEO DISPLAY HARDWARE

The graphics processor 54 can be any general purpose processor. In oneembodiment of the present invention, a Fujitsu 40 Mhz SPARClite™microprocessor is used. The graphics processor 54 is responsible fordetermining the view points 32 and view ports 34 in response to the yawand pitch samples respectively from the position sensor 24. The graphicsprocessor 54 may also use prediction algorithms to predict the movementof the head mounted display 22. These algorithms include a smoothingfunction which reduces the effects of instability in the movement of theuser's head. A “stick” function determines how the video display system10 is to respond when the user begins to move his head. Since a userwill not keep his head perfectly still while looking at a view window36, the stick function will freeze the view window. When a movementthreshold is exceeded, the graphics processor 54 “unsticks” the image inthe view window 36 and the image can be updated. Such algorithms arewell known and are often referred to as “hysterysis” algorithms. Thegraphics processor 54 is also responsible for calculating and displayingthe scroll bars 37 and 38 in the view window 36.

The memory 56 includes sixteen megabytes (16 MB) of DRAM. Four megabytes(4 MBs) are dedicated for code space 57 for the graphics processor 54.The code for the standard graphics algorithms is stored in this memoryspace. The remainder of the memory 56 is used for the frame buffer 42,as described above. In one embodiment, the memory includes thirty-two 4MBit DRAM chips.

The arbiter 58 is an application specific integrated circuit (ASIC) chipdesigned for the video display system 10. The scan line generator 52,the graphics processor 54, and the main CPU 62 all compete for access tothe frame buffer 42. The arbiter 58 controls access to the frame buffer42 according to a basic priority protocol. The scan line generator 60,the graphics processor 54, and the main CPU 50 have first, second andthird priority rights to the frame buffer 42 respectively. A statemachine is used to select one of the three inputs in accordance with theabove-defined protocol. The arbiter 58 is also responsible forgenerating the row address signals (RAS) and column address signals(CAS) for accessing the frame buffer 42 for refreshing the DRAM memoryof the frame buffer 42, and other memory related functions. Since busarbitration and these other memory related functions are well known inthe art, a detail description is not provided herein.

The scan line generator 60 is a part of the arbiter 58. A scan line isdefined as thirty-six consecutive words (1152 bits) in the frame buffer42. The scan line generator 60, under the direction of the graphicsprocessor 54, is responsible for addressing the words in the framebuffer 42 which define a scan line. Nine hundred (900) scan lines areused to generate a single view window 36.

The graphics output controller 62 is a shift register capable of holdingone scan line and is responsible for truncating the scan line to (1120)bits. The truncation eliminates the bits of the scan line that falloutside the boundaries of the view port 34. The truncated scan line isthen segmented into bytes (8 bits). The bytes are stored in the FIFO 64.

The display timing generator 66 performs two functions. First, itprovides the bytes stored in the FIFO 64 to the head mounted display 22for display. Second, it generates a new window interrupt and scan lineinterrupt. These two interrupts are used to control the timing of thegraphics processor 54.

The head mounted display 22 provides a (1120×900) monochrome pixelimage, corresponding to the 1120×900 pixels of the view window 36respectively. The view window 36 as seen in the mounted display 22extends (25°×20°). The head mounted display 22 provides a very clear,crisp image having a resolution that exceeds a conventional computermonitor. A display device, such as the Private Eye™, designed byReflection Technology of Waltham, Mass., is a suitable choice for thehead mount display 22. Although the pixel density of the Private Eye isnot quite as high as that mentioned above, the device could be readilymodified to provide the preferred pixel density as mentioned above.

In a preferred embodiment, a “6D Tracking System” by Logitech, Fremont,Calif., is used for the position Sensor 24. This device was selectedbecause it is commercially available, is relatively inexpensive,accurate and provides an adequate yaw and pitch sampling rate.

OPERATION

FIG. 4 illustrates the video display system 10 generating a view window36 according to the present invention. When the graphics processor 54receives a new window interrupt from the display timing generator 66,the processor first determines the location of the view point 32 basedon the most recent yaw and pitch sample. Next, the graphics processor 54determines the view port 34 around the view point 32. The view point 32and the view port 34 are shown superimposed on the virtual view space40. (Note the size of the view port 34 in reference to the virtual viewspace 40 is not to scale.)

The display timing generator 66 then generates a scan line interrupt. Inresponse to this interrupt, the graphic processor 54 determines a “startpixel” location for the first scan line 80. The physical memory addressfor the start pixel location is stored in Dx and Dy registers of thegraphics processor 54 respectively.

The scan line generator 60 reads the start pixel address informationfrom the Dx and Dy registers of the graphics processor 54 and determinesthe physical address of the word that contains the start pixel in theframe buffer 42. The scan line generator 60 then accesses thirty-sixconsecutive words, in nine bursts of four words, starting with the wordthat contains the start pixel. The thirty-six words define the scan line80 which is 1152 bits long. For the scan line 80 illustrated in thefigure, the first word is designated by bits (1-32) and the last word isdesignated by bits (1120-1152). Note that the left side of the viewwindow 36, which is superimposed on the frame buffer 42, coincides withthe start pixel location. The right side view window 36 passes throughthe last word of the scan line 80.

In situations where the wrap around feature is invoked, the scan linegenerator 60, under the direction of the graphics processor 54 willagain access thirty-six words. However, a first subset of the thirty-sixwords are accessed from the right side of the frame buffer 42 and theremaining words are accessed from the left side of the frame buffer 42.

The graphics output controller 62 receives the scan line 80 from theframe buffer 42 and places its bits into a shift register system 82.This system functions as if it were a 1152 bit wide shift register,which shifts the 1152 bits so that the start pixel is in the left-mostposition in the register (i.e., position 1). Accordingly, the bits inthe first 1120 locations of the register 82 are used to define atruncated scan line 84. Any bits remaining in locations 1021 through1052 are discarded. The truncated scan line is then divided into 8 bitbytes and stored in FIFO 64.

In the preferred embodiment, the size of the actual shift register is(36) bits wide. For each of the thirty-six words that make up a scanline 80, the graphics processor 54 controls the shift amount bycalculating the two's complement of the lower five bits of the startpixel address. This calculation determines the offset of the start pixelwithin the scan line 80 and shifts the word in the register accordingly.This shift sequence is repeated for the thirty-six words that make upthe scan line 80.

The truncated scan lines 84 are stored in byte segments in the FIFO 64and are sequentially provided to the head mounted display 22 through thedisplay timing generator 66. The head mounted display 22 displays thenine hundred scan lines, from top to bottom, for each view window 36. Inthis manner, the view window 36 is generated and displayed in a “raster”like fashion in the head mounted display 22.

In a preferred embodiment, the actual lag time of the video displaysystem 10 is approximately 0.033 seconds, which is imperceptible to thehuman eye. To achieve this lag time, the yaw and pitch information issampled 30 times a second. The new window interrupt occurs 50 times asecond, and the scan line interrupt occurs 45,000 times a second.

VIDEO PIPELINE

Referring to FIG. 5, a video pipeline according to the present inventionis shown. The video pipeline 90 illustrates the functional steps bywhich the present invention generates a model to be displayed. Thisfigure and the discussion below highlights the advantages anddistinctions of the video display system 10 over prior art virtualreality systems.

The video display pipeline includes a measuring step 92 for measuringthe user's movement, a step 94 for defining the view point of the modelto be displayed based on input from the measuring step 92, a computationstep 96 for modifying the point of view based on a predefined algorithm,and an access step 98 for accessing the appropriate data from the framebuffer 42, and providing the data to a display device 100.

The frame buffer 42 stores all of the possible views of the model to bedisplayed. The data, relationships and objects that are relevant to allpossible view points of the model are stored in the converted state(i.e., ready for display) in the frame buffer. This approachsignificantly differs from the prior art virtual reality systems. Theneed to store pre-transformed display information in a database,traversing the database, extracting the appropriate data to generate themodel from the selected point of view, and transforming it on the fly tothe proper display format are all eliminated. As a result, the videodisplay system of the present invention provides superior performance indisplaying those view points stored in the frame buffer 42.

In accordance with various embodiments of the present invention, theorganization of the frame buffer 42 can be modified to provide threedimensional video display. This is accomplished by providing “layers” ora three dimensional frame buffer. For example, the frame buffer 42 canbe organized into a (16K×6K×10) pixel frame buffer. As the positionsensor indicates the user is moving forward or backward, the variouslayers of the frame buffer 42 are accessed. As a result, the view windowas seen through the head mounted display 22 appears to get bigger orsmaller respectively.

The measuring step 92, which is implemented by the transmitter 26 andthe receiver 28, can measure other movements besides the user's head.For example, the transmitter 26 can be attached to the users hand. Infact, it is within the scope of the present invention to measure anymoving object.

The step 94 of calculating the view point, which is implemented by theposition sensor 24, can be modified to provide three dimensionaltracking. For example, the position sensor 24 can be modified to provideyaw, pitch and forward and backward tracking.

The computation step 96, which is implemented by the graphics processor54, can be programmed to provide additional capabilities and flexibilityto the video display system 10. In the embodiment described in relationto FIGS. 1-4 of the present application, the computational step provideda one-to-one correspondence. That is, for a one degree movement ineither yaw or pitch, a similar one degree change of the view window 36is realized (linear). The present invention, however, contemplates thatthe graphics processor 54 can be programmed to access the frame buffer42 in accordance with any predefined algorithm. For example, with a onedegree movement in either yaw or pitch, the graphics processor 54 can beprogrammed to access the information from the frame buffer 42 so that anN° (where N°=2, 3, 4. . . ) change is reflected in the view window 36(scaling). For a leftward shift in yaw, the image in the view window 36may shift right, or vice versa. Similarly, an upward shift in the pitchmay result in a downward shift in the view window 36, or vice versa. Thegraphics processor 54 can also be programmed to successively read out aplurality of view ports 34 from the frame buffer 42 (non-linear), thuscreating a continuous “motion picture” image in the head mounted display22. In summary, the graphics processor 54 can be programmed to computeany linear, scaled, non linear, or even a introduce a time delay in theaccess of information from the frame buffer 42.

The access step 98, which is implemented by the scan line generator 60under the supervision of the graphics processor 54, is responsible forselecting and accessing the appropriate display information from framebuffer 42. The scan line generator 60 is extremely fast. It enables theview window to be updated with no perceptible lag time. The scan linegenerator 60 is also highly precise, and it allows the user to easilytraverse the frame buffer.

It should be noted that the devices described in reference to FIGS. 1-4,including the measuring device, the device for defining a view point,the device for modifying the view point, the device for accessingdisplay data, and the device for displaying the data are only exemplary.It is within the scope of the present invention to use any device toimplement the above-mentioned functions. For example, a standard monitorcould be used for the display device.

While the invention has been described in relationship to the embodimentshown in the accompanying figures, other embodiments, alternatives andmodifications will be apparent to those skilled in the art. The videodisplay system 10 can be used in any display environment, such as theoffice, video games, or flight simulators. The dimensions and size ofthe virtual view space 40, frame buffer 42 and view window 36 are allarbitrary. The system can be modified to provide a color video displaysystem. This would require that the color pixel information be stored inthe frame buffer 42. In a color video display system, the graphicsprocessor 54 could be modified to perform a number of standard graphicsrelated functions, such as shading, anti-aliasing, illumination, etc.The system could be modified to provide a selective transparent featurefor the head mounted display. Lastly, the function keys of the keyboard18 could be programmed to save and invoke a specific view window 36 inthe virtual view space 40 when selected. It is intended that thespecification be only exemplary, and that the true scope and spirit ofthe invention be indicated by the following claims.

What is claimed is:
 1. The method of displaying information generated bya computer, comprising the steps of: storing information related to amultiplicity of view points of a model to be displayed in a framebuffer; selecting one of the view points based on an input from a user;accessing the information related to the selected one of the view pointsfrom the frame buffer; displaying the information related to theselected one of the view points on a display device; providing a virtualview space; mapping the information related to the multiplicity of viewpoints of the model to be displayed and stored in the frame buffer tothe virtual view space; mapping the entire virtual view space into theframe buffer; displaying the information related to the selected on ofthe view points in a view window within the virtual view space.
 2. Themethod of claim 1, further comprising the step of converting theinformation related to the multiplicity of view points to a ready fordisplay format prior to the storing step.
 3. The method of claim 1,wherein the selection of one of the view points further comprises a stepof measuring a movement of the user.
 4. The method of claim 3, whereinthe measuring step further comprises transmitting a position signal fromthe user to a receiver located at a fixed reference point.
 5. The methodof claim 4, wherein the position signal includes at least one of thefollowing: yaw information; pitch information; or forward/backwardinformation.
 6. The method of claim 1, further comprising the step ofmodifying the selected view point according to a predefined algorithmprior to the access step.
 7. The method of claim 6, wherein themodification is linear.
 8. The method of claim 6, wherein themodification is non-linear.
 9. The method of claim 6, wherein themodification is non-scaler.
 10. The method of claim 6, wherein themodification includes a relationship between the time of selection ofthe selected view point and the time the selected view point isdisplayed.
 11. The method of claim 1, further comprising the steps of:selecting a second of the view points based on a change of the inputfrom the user; accessing the information related to the selected secondview point from the frame buffer; and displaying the information relatedto the selected second view point on the display device.
 12. The methodof claim 1, wherein the access step further comprises: ascertaining amemory location in the frame buffer corresponding to the selected one ofthe view points; defining a view port around the corresponding memorylocation in the frame buffer; dividing the view port into a plurality ofscan lines, each scan line including a fixed number of memory locationsin the frame buffer; and for each scan line: accessing a predeterminednumber of words from the frame buffer containing the scan line; andtruncating any of the memory locations from the accessed words fallingoutside the dimensions of the view port.
 13. The method of claim 12,further comprising the steps of creating a view window in the displaydevice from the plurality of truncated scan lines.
 14. The method ofclaim 1, further comprising the step of generating scroll bars in theview window.
 15. An apparatus for displaying a model generated by acomputer, comprising: a frame buffer configured to store ready fordisplay information related to a multiplicity of view points of a modelto be displayed; an input device to select one of the view points; agraphics system, coupled to the input device, to access from the framebuffer a subset of the information related to the selected one of theview points; a display device, coupled to the graphics system, todisplay the subset of display information related to the selected one ofthe view points; and a virtual view space mapped into the frame bufferand a view window in the virtual view space to display the subset ofdisplay information related to the selected one of the view points. 16.The apparatus of claim 15, wherein the virtual view space is 360°. 17.The apparatus of claim 16, wherein the user is surrounded by the 360°virtual view space.
 18. The apparatus of claim 15, wherein the inputdevice is a position sensor which provides a position signal to thegraphics system so that the graphics system can determine the selectedone of the view points.
 19. The apparatus of claim 18, wherein theposition sensor further comprises a receiver at a fixed reference pointand a transmitter coupled to a user to transmit user movementinformation to the receiver at the fixed reference point.
 20. Theapparatus of claim 15, wherein the display device is a head mounteddisplay.
 21. The apparatus of claim 15, wherein the graphics systemfurther comprises a graphics processor to determine a memory location inthe frame buffer corresponding to the selected one of the view points.22. The apparatus of claim 21, wherein the graphics processor defines aview port around the selected memory location in the frame buffer. 23.The apparatus of claim 22, wherein the view port comprises apredetermined number of scan lines, each scan line including a fixednumber of memory locations.
 24. The apparatus of claim 23, furthercomprising a scan line generator, coupled to the graphics processor, toaccess the predetermined number of scan lines of the view port from theframe buffer.
 25. The apparatus of claim 24, further comprising atruncator to truncate the memory locations of each scan line that fallsoutside of the view port.
 26. The apparatus of claim 25, wherein thetruncated scan lines for the view port are used by the display device togenerate the view window in the virtual view space.
 27. The apparatus ofclaim 15, wherein the graphics system further generates scroll bars inthe view window.
 28. The apparatus of claim 21, further comprising adisplay timing generator to provide a view window interrupt and a scanline interrupt to the graphics processor.
 29. The apparatus of claim 15,further comprising an arbiter to arbitrate access to the frame bufferamong the graphics processor, the scan line generator and the graphicsprocessor.